#include "Bullet3Dynamics/ConstraintSolver/b3SolverConstraint.h"
#ifdef __cplusplus
extern "C" {
#endif
b3SolverConstraint* bullet_Newb3SolverConstraint(){
	b3SolverConstraint* wrap_out = new b3SolverConstraint();
	return wrap_out;
}

b3Vector3* bullet_b3SolverConstraint_GetFieldOfM_angularComponentA(b3SolverConstraint* c_this){
	return (b3Vector3*)(&c_this->m_angularComponentA);
}

b3Vector3* bullet_b3SolverConstraint_GetFieldOfM_angularComponentB(b3SolverConstraint* c_this){
	return (b3Vector3*)(&c_this->m_angularComponentB);
}

float bullet_b3SolverConstraint_GetFieldOfM_appliedImpulse(b3SolverConstraint* c_this){
	return (float)(c_this->m_appliedImpulse);
}

float bullet_b3SolverConstraint_GetFieldOfM_appliedPushImpulse(b3SolverConstraint* c_this){
	return (float)(c_this->m_appliedPushImpulse);
}

float bullet_b3SolverConstraint_GetFieldOfM_cfm(b3SolverConstraint* c_this){
	return (float)(c_this->m_cfm);
}

b3Vector3* bullet_b3SolverConstraint_GetFieldOfM_contactNormal(b3SolverConstraint* c_this){
	return (b3Vector3*)(&c_this->m_contactNormal);
}

float bullet_b3SolverConstraint_GetFieldOfM_friction(b3SolverConstraint* c_this){
	return (float)(c_this->m_friction);
}

int bullet_b3SolverConstraint_GetFieldOfM_frictionIndex(b3SolverConstraint* c_this){
	return (int)(c_this->m_frictionIndex);
}

float bullet_b3SolverConstraint_GetFieldOfM_jacDiagABInv(b3SolverConstraint* c_this){
	return (float)(c_this->m_jacDiagABInv);
}

float bullet_b3SolverConstraint_GetFieldOfM_lowerLimit(b3SolverConstraint* c_this){
	return (float)(c_this->m_lowerLimit);
}

int bullet_b3SolverConstraint_GetFieldOfM_overrideNumSolverIterations(b3SolverConstraint* c_this){
	return (int)(c_this->m_overrideNumSolverIterations);
}

int bullet_b3SolverConstraint_GetFieldOfM_padding1(b3SolverConstraint* c_this){
	return (int)(c_this->m_padding1);
}

int bullet_b3SolverConstraint_GetFieldOfM_padding2(b3SolverConstraint* c_this){
	return (int)(c_this->m_padding2);
}

b3Vector3* bullet_b3SolverConstraint_GetFieldOfM_relpos1CrossNormal(b3SolverConstraint* c_this){
	return (b3Vector3*)(&c_this->m_relpos1CrossNormal);
}

b3Vector3* bullet_b3SolverConstraint_GetFieldOfM_relpos2CrossNormal(b3SolverConstraint* c_this){
	return (b3Vector3*)(&c_this->m_relpos2CrossNormal);
}

float bullet_b3SolverConstraint_GetFieldOfM_rhs(b3SolverConstraint* c_this){
	return (float)(c_this->m_rhs);
}

float bullet_b3SolverConstraint_GetFieldOfM_rhsPenetration(b3SolverConstraint* c_this){
	return (float)(c_this->m_rhsPenetration);
}

int bullet_b3SolverConstraint_GetFieldOfM_solverBodyIdA(b3SolverConstraint* c_this){
	return (int)(c_this->m_solverBodyIdA);
}

int bullet_b3SolverConstraint_GetFieldOfM_solverBodyIdB(b3SolverConstraint* c_this){
	return (int)(c_this->m_solverBodyIdB);
}

float bullet_b3SolverConstraint_GetFieldOfM_upperLimit(b3SolverConstraint* c_this){
	return (float)(c_this->m_upperLimit);
}

#ifdef __cplusplus
}
#endif
